English Translation Patch (version 0.25) for Jaseiken Necromancer

            _.'          .
           |P`            ?\
          ."h              "B
          (""h             "P
          ?""",          .""P
          {"``""oo____oo""""P
           '""888888888888,;
            `?88P^\,?88^\,Y
              88?\__d88\_/'
              `8o8888/\88P
               ,?oo88oo8P
     ___  __===~88~\\\\\|~====__ __       ___
 .-==ooo~odoooob ?8/////'oooood88888ooo?P88888?ooo?888PooooOoooooooo=~--
d,d8888obo8,oo8b,``~~~,o?8oo,8888**8P88?8`oo,o888?898o8P888P~8b
8o88888oP?.,,ooood8b,.oo.,oo88?o8888P^^^?8888P^^^^==+=~~~?8bo?P
?8.=~=.8do.,oo88888ooo,o,oo88888o,;                      `6
.?*o88ob`8.,o88888888oo,o,o88888o,'                       `\
|*o8888o`8,oo88888888oo,o,o?8888o'
`?o8888P`88,,oo88888oo,,.,oo88oo;
.8`o888'**888oo,,,,oood88oo,,d8'
doo,,oP  ?888o,,o8o,o8o,,,o8oo'
8od8bo'  `?88o,,o8o,o88o,.,o,o'
8o888o    `88o,,o8o,o8o,.,o,o'
?o888P     ===========<666>==
`?88P     ********************
 ?ooPb   ',odoo,************,b
d{{{{b\,(,oo88ooo,,********,oob
OOOOO \\,oo8888ooo,,******,o888,
(\\\\ ||,o8888888oo,,*****,o88o)
  \\\\/`,o8888888oo',*****,888o|
        `oo8888888o',*****,888o|
        `,o888888oo,,*****,o8oo'
        `,o88888oo,, *****,o8oP
        `?,o888oP,,  *****,ooP
         `8-==-P,    |****,,-='
          ?o88oP     |*'d*,o88
         .dboodb.     *;8*,o88
         ,od88boo     *,o*,o88'
         do8888ob     *`o*,o8P
         ?o8888oP     |`,|,oo'
         `o8888o'     `?o8oP
          `o88o'      ,o88o'
           ?ooP       `?88o'
          dooo'b      'o88oo,.
         '?o===o   ~-=8oo888888oo.__
         8888888     `~~~' `==~~~=-,' 
         ?8P?88P 
          V''V'     original picture by Alex Pelton `96 
          '  '


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                            Table of Contents                               ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

(1)  About the Game 
(2)  Patch Description
(3)  Version History
(4)  Applying the Patch
(5)  Credits and Contacts
(6)  Noteworthy changes examples in 2nd release
(7)  ROM data info

Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                            (1)  About the Game                             ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

Jaseiken Necromancer (or just Necromancer) is a role-playing game for
TurboGrafx-16 (PC Engine in Japan). It's the first JRPG for 4th generation of
consoles and it has pretty impressive graphics for the time of its release -
idle animations of enemies, for example (They also were in Square's Cleopatra no
Mahou before, but its more adventure than RPG). The main feature of Necromancer
is grim dark gore style, partly inspired by H. R. Giger. Gameplay is
Dragon Quest based, more or less, with some extra features like separate
equipping of spells. The game is pretty rough due to frequent random battles,
grind and absence of transport or fast travel. Choose your buddies wisely! It's
not the first JRPG by Hudson - they made Momotaro Densetsu for Famicom before -
but looks like it was another team.


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                          (2)  Patch Description                            ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

This is the partial translation for Jaseiken Necromancer for TurboGrafx-16.
Current progress:
o In-game menus    - 100% TRANSLATED
o Character names  - 100% TRANSLATED
o Equipment        - 100% TRANSLATED
o Items            - 100% TRANSLATED
o Spells           - 100% TRANSLATED
o Enemy names      - 100% TRANSLATED
o Service messages - 100% TRANSLATED
o Main dialogues   - NOT TRANSLATED
o Battle log       - NOT TRANSLATED

Basically, all non-compressed text is translated. Further translation requires
understanding of the text compression algorithm and probably injection of
variable-width font instead standard 8x8 one.

The main differences between initial release and versions 0.2-0.25 are bugfix, more
efficient using of ROM space, reworked translation and proper fitting of text in
the interface.

Current translation made Jaseiken Necromancer beatable with no major bugs,
except the ones that present in the original Japanese version. Most probably you 
will need a walkthrough in the later part of the game, but this partial
translation makes understanding easier anyway.


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                          (3)  Version History                              ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

Feb 13, 2019 - 0.25
======================
o Some monster names and one spell name are retranslated. Reasons -
H.P. Lovecraft / Norse / other mythology compliance or better readability.

Dec 17, 2018 - 0.2
======================
o Every byte is revisited!
o The bug that caused incorrect display of the names of the most armors and 
graphical glitches in some armor shops is fixed.
o Character names are extended up to 5 chars! (except the main hero)
o Equipment, Item, Spell and Monster names are heavily reworked and partly 
retranslated. Some are extended, some are truncated. Initial hack didn't change 
byte size of any of them as compared with Japanese version - now it made
possible by finding data pointer arrays and understanding the format. All the
text is optimized to fit the menus.
o Same for Service Messages, which give much more sense now. Still not grammar 
correct in every place because of limitations, but generally better than before.
o Menus arrangement is reworked - no more visual garbage, indents are optimized,
using of three different words is added instead of どうぐ (item/tool) for different 
cases.
o Some font characters are edited for easier reading.

Aug 31, 2013 - 0.01b
======================
o Initial Version


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                         (4)  Applying the Patch                            ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

This IPS patch requires that you download a program that can apply it to a
properly dumped ROM-image of the game. Recommended IPS patching program for
Windows is Lunar IPS by FuSoYa.

Always make sure to have an original backup of your game. And only apply the
patch to a clean, unmodified ROM.

The original, unmodified game has the following characteristics:

Size   256KB (262,656 bytes)
CRC32  5A7D6735
MD5    F6B7C2963ECFAA786C3B8AA0675F57A2
SHA-1  82E0CD20EEDB14C0D5ADF95BDCF23B93CFFD29EE

I'm not telling you how to get the ROM file, but once you do, call it
"Necromancer (J).pce".
 
Using Lunar IPS:
a) Double-click "Lunar IPS"
b) Click  "Apply IPS Patch"
c) Choose "Necromancer_ENG_v02.ips"
d) Choose "Necromancer (J).pce"


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                        (5)  Credits and Contacts                           ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

o Original Project Coordinator & ROM Coding                      - Pikachumanson
o Original ROM Coding                                            - MrRichard999
o Original Translation                                           - Eien Ni Hen
o Original Translation                                           - Psyklax
o Additional ROM Hacking, Partial Retranslation and Play Testing - Griever_GF

If you interested in helping the further translation (especially if you cracked
the text compression algorithm), feel free to contact:
o MrRichard999 at Twitter
o Pikachumanson at Romhacking.net forums
o Griever_GF at both places

Also you may be interested in Griever_GF's YouTube channel with reviews on
old-school JRPGs:
https://www.youtube.com/igroteka90


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||              (6)  Noteworthy changes examples in 2nd release               ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

LIM/CHA/BARR/MAIS/ROM -> LIME/CHAOS/BARON/MAIST/ROMNA - character names
MIO/REMI -> MIO/REMIO - water spells
FLR/FUREA -> FLR/FLRUT - fire spells
LYL/ZERAI/ZERAIGU -> LYL/ZELYL/ZELYGS (ライル/ゼライル/ゼライガス) - healing spells
ダンテ -> DANT - spell was untranslated (enemy-only spell)
CLW/SOL-BAR/SPER/SWRD/AX -> CLAW/STL-BAR/SPEAR/SWORD/AXE
RAITO/TRTH/VICTOR -> LIGHTNY/TRUTH/SUCCEED (ライトニー/トルース/サクシード)
DABAROBU/RJIRU/GORUDO-A -> DB-ROBE/REJIRU/GOLDAMR
DRAGON-SHD -> DRGN-SH - 7 char limitation for equipment
MIGER-HLM -> JELD-HL (ジェルドヘルム) - incorrect translation. no "Miger" helm exists 
								  in game, only armor and shield.
GRL-HILT -> BRIM-CUP - it's holy grail, but "cup" is more obvious for 8 chars
VERNーST -> BURN-STF
STARーSPH -> STARSAPF - not grammar correct, but much more obvious
GODDESS-R, GODDESS-C -> GODES-RN, GODES-CR - same (8 chars)
ANTIDTE -> REMEDY (どくけしそう) - optimized to 6 chars because it's stackable
TARONZ -> TALONS (talons-looking monster)
BEA/FENRI/PHANT/MIS/SHADW -> BEAR/FENRIR/PHANTOM/MIST/SHADOW
GATHER/BORUGYAZA -> GAZER/BOLGAZER
BESUTI/TIGER-MAN -> BESTY/BESTYMAX (ベスティー/ベスティーマクス)
BIGAR/DABABIGARO/MOZUMA-X -> BIGR/DABABIGR/BIGRCOST
AIN/OCT/MEGAOCT/STRKOCT -> AIN/MER/AINSTARK/MERSTARK
GRIFFN/GRIFFO/DK-GRF -> GRIFFON/GRIFFIN/GRYPHON (グリフォン in all 3 cases)
DABEROS/CERERUS/DEVLHND -> DABEROS/DAVEROS/DAVELOS (ダーベロス in all 3 cases)
HYDRA/HAIDORAGU -> HYDRA/HYDRAGUF
FERUZURAI/FRZ-REISE/GUFUTORA/FUREARA/U-IRU-R/L-REISE -> 
FEZURISE/FUZIRISE/GUFTRISE/FLRRISE/WILRISE/LISTRISE 
(GUFT - poisonous monster/spell, FLR - same for fire)
GUFUTO-T/FLTITAN/W-TITAN/R-TITAO -> GUFTITAN/FLRTITAN/WILTITAN/RABTITAN
TYRE/DORUM -> TYREL/DOLMY
HAS NO MORE TOOLS. -> CANT HOLD MORE ITEMS
<main_hero>MAX CAPACITY! -> NO ONE TAKES… (when refusing to pick up item)
CANT HOLD ANYMORE! -> CANT HOLD MORE SPELLS
<hero_name> <spell name> CANT CAST    <hero_name> CANT CAST <spell name>
YET………                             -> LEVEL TOO LOW
<main_hero>ANNIHALATED! -> PARTY IS WIPED OUT!
AN ENTRANCE! -> DUNGEON ENTRANCE!
<item/spell_name> CANT DO. -> <item/spell_name> IS USELESS (when opening chest)
ZZZ…HAD NO EFCT -> SERS EFFECT GONE (it's not the sleep spell)
WONT OPEN! -> KEY DOESNT FIT!
<item_name> CANT DO -> CANT DROP <item_name>
USE/GIV/DRP -> USE/GIVE/DROP
TOOL -> ITM/ITEM/ACC (in-battle/chest/equipment menus)


Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO
||                           (7)  ROM data info                               ||
Oo*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*oO

This information can be useful for further hacking.

Character limitations for proper fitting text in the interface
==============================================================
o Equipment       - 7
o Stackable items - 6 (if you want to keep space between name and counter)
o Other items     - 8
o Spells          - 6 (it should be 5, but current hack uses 6, that causes a
                       little mess in battle submenu, but this is acceptable)
Character names of 5 chars can also lack the space between them and HP counter
in battle interface near the end of the game (if you HP exceed 1000), but this 
is acceptable too. Most probably you'll miss this problem at all.

Text encoding in ROM (hexademical bytes)
========================================
10 = space
11 = !
12 = 「 (japanese quotation mark (open))
13 = #
14 = 」 (japanese quotation mark (close))
15 = ???another space?? unknown purpose
16 = ellipsis (4 dots)
17 = ?
18 = (
19 = )
1A = *
1B = +
1C = ,
1D = -
1E = .
1F = /
20-29 = '0' - '9'
2A-43 = 'A' - 'Z'
KATAKANA
44 = ヲ (wo)
small forms:
45-49 = ァ - ォ
4A-4C = ャ - ョ
4D = ッ
4E = 。 (katakana-hiragana dot)
4F = 、 (katakana-hiragana comma)
50-54 = ア - オ
55-59 = カ - コ
5A-5E = サ - ソ
5F-63 = タ - ト
64-68 = ナ - ノ
69-6D = ハ - ホ
6E-72 = マ - モ
73-75 = ヤ - ヨ
76-7A = ラ - ロ
7B = ワ
7C = ン
7D = adds ゛ (dakuten) diacritic above next character
7E = adds ゜ (handakuten) diacritic above next character
7F = ー (katakana-hiragana prolonged sound mark)
HIRAGANA
80 = を (wo)
small forms:
81-85 = ぁ - ぉ
86-88 = ゃ - ょ
89 = っ
full:
8A-8D = あ - お
8F-93 = か - こ
94-98 = さ - そ
99-9D = た - と
9E-A2 = な - の
A3-A7 = は - ほ
A8-AC = ま - も
AD-AF = や - よ
B0-B4 = ら - ろ
B5 = わ
B6 = ん
B7 = cross (selection)
B8 = fill (?)
B9, BA, BB - more spaces??
 
Looks like character images load in RAM on game start and then remain constant.

WHAT'S WHERE IN ROM
===================
(addresses are hexadecimal)
(pointer arrays always consist of two-bytes words with little-endian order)
(pointer arrays elements for everything except character names and menu items 
point to PACKS of text elements (item names, spell names, etc.) of size 16 - 
but first pack can be 15 in some cases)

340E-3419 
Character names pointers (used everywhere except the choice dialogue in the
beginning of the game, which is described further)

341A-3438
Character names. Array element divider is 00. Looks like the default name of
the main hero don't used anywhere, because you can't start game with the empty
name input. Array is a little bit shorter in the original version, but it can
be freely expanded to 3438 address, and that was performed in 0.2 patch for
longer names.

16200-1674F
Font characters (1BPP 8x8)

1FAA1-1FAAA
Service messages pointers. Pack size is 16, except the penultimate - looks like
its 14 for unknown reason. And the last pack is shorter of course.

1FAAB-1FDB7
Service messages array. Array element dividers are 0D and 00.

21F01-221F2
Ending titles array. Array element divider is 0D.

29BA6-29C05
Menu words pointers
1-4: text speed setup menu
5-8: chest opening menu
9-13: mates select dialogue in the beginning of the game
14-17: topic selection menu for dialogue with NPC in the house in the 1st town
18-19: same, but for another two topics later in game
20-23: equip/remove and buy/sell pointers
24-26: not sure, but they affect character stats, so it's somehow connected with
game party. THESE POINTERS (04 24 40 24 7C 24) APPEAR IN ROM SEVERAL TIMES, SO
IT MIGHT BE USEFUL FOR FURTHER HACKING.
27-32: not sure, but probably affect on characters sprites (6 pointers for 6
characters)
33-37: what to equip selection submenu (weapon, 3 kinds of armor and "tool")
38-40: main menu (by groups of two horizontal choices divided by space)
41-43: battle menu (by groups of two horizontal choices divided by space)
44-46: item selection submenu (use/give/drop)
47-48: yes/no submenu

29C0A-29C3A
Menu words (main menu, item submenu, yes/no submenu)

29C3B-29C5A
Status screen words pointers. Same order as data further, i.e. 1 - HP, 10 - NAM,
11- LVL, 13 - WPN, 16 - HLM)

29C5B-29D71
More menu words (status, battle, shop, speed setup, etc.)

2A3F7-2A404
Monster names pointers. Pack size is 16, but first one is 15.

2A406-2A6C7
Monster names array. Array element divider is 00.

2BF37-2BF3E
Equipment and items names pointers. Pack size is 16, but first one is 15.

2BF41-2C10A
Equipment and items names array. Array element divider is 00. Some item names in
3rd pack are 0x01 - probably dummies.

2C14B-2C14E
Spell names pointers. Both packs size is 16.

2C14F-2C1FF
Spell names array. Array element divider is 00.

2E6F5-2E748
Probably some pointers for Input Name/Password menu elements.

2E80C
Char ア/Z for Input Name/Password menu, so others are near.

2E81D-2E871
Input Name/Password menu elements array. Array element divider is 0D.

If you need even more info, you can check the table in Google Docs that was used
for the versions 0.2-0.25 releases. It may be not 100% correct, but can be useful:
https://docs.google.com/spreadsheets/d/1HqgGMAufW-M7bxKb8STqDkrxHvYv3SquFawRNTmJelQ
